package org.dromara.oce.domain.bo;

import org.dromara.oce.domain.OceMicroWechatApp;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.io.Serializable;
/**
 * 微信小程序业务对象 oce_micro_wechat_app
 *
 * @author dsbb
 * @date 2025-06-04
 */
@Data
@EqualsAndHashCode()
@AutoMapper(target = OceMicroWechatApp.class, reverseConvertGenerate = false)
public class OceMicroWechatAppBo implements Serializable {

    /**
     * 小程序资产id
     */
    @NotNull(message = "小程序资产id不能为空", groups = { EditGroup.class })
    private Long instanceId;

    /**
     * 管家账号id
     */
    @NotNull(message = "管家账号id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long accountId;

    /**
     * 第三方广告主id
     */
    @NotNull(message = "第三方广告主id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long advertiserId;

    /**
     * 小程序app id
     */
    @NotBlank(message = "小程序app id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appId;

    /**
     * 小程序名称
     */
    @NotBlank(message = "小程序名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String appName;

    /**
     * 小程序原始id
     */
    @NotBlank(message = "小程序原始id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userName;

    /**
     * 小程序路径参数，如有跳转指定页面或自定义参数监测广告效果数据诉求，需填写
     */
    @NotBlank(message = "小程序路径参数，如有跳转指定页面或自定义参数监测广告效果数据诉求，需填写不能为空", groups = { AddGroup.class, EditGroup.class })
    private String path;

    /**
     * 资产备注信息，最大长度不超过15
     */
    @NotBlank(message = "资产备注信息，最大长度不超过15不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remarkMessage;

    /**
     * 细分类型或道具类目分类ID
     */
    @NotBlank(message = "细分类型或道具类目分类ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String tagInfo;

    /**
     * 分类名称：小程序-短剧-都市-其他
     */
    private String tagInfoDesc;

    /**
     * 小程序icon图片的url，尺寸60*60px,大小不超2MB  图片格式要求jpeg、png或gif
     */
    private String iconImageUrl;

    /**
     * 顶部头图的url，大小不超过5MB的图片，推荐尺寸2:1 图片格式要求jpeg、png或gif
     */
    private String headerImageUrl;

    /**
     * 小程序标签（逗号隔开），每个标签长度不超过6，最多支持6个标签
     */
    private String labels;

    /**
     * 小程序竖图的url地址，要求尺寸必须为3:5，否则报错。
     */
    private String imagesVerticalUrl;

    /**
     * 小程序横图的url地址，要求尺寸必须为3:5，否则报错
     */
    private String imagesHorizontalUrl;

    /**
     * 小程序简介，最大长度不超过50
     */
    private String introduction;

    /**
     * 审核状态：AUDITING-审核中；AUDIT_ACCEPTED-审核通过；AUDIT_REJECTED-审核拒绝；
     */
    private String auditStatus;

    /**
     * 审核拒绝原因
     */
    private String reason;


}
